LUFA MassStorage Bootloader
Windows環境でドラッグ&ドロップでファームウェア書き込みができる(Ubuntuではできない(後述))
ブートローダーのビルド・書き込み
リセットボタンを押すとブートローダーに入るようにする
cd qmk_firmware/lib/lufa/Bootloaders/MassStorage
BootloaderMassStorage.cのmain()のはじめにMCUSR &= ~0x02;と書く
常に外部リセットフラグをOFFにするため
makefileの該当行をATmega32u4向けに書き換える
code:makefile
MCU = atmega32u4
ARCH = AVR8
BOARD = LEONARDO
F_CPU = 16000000
FLASH_SIZE_KB = 32
BOOT_SECTION_SIZE_KB = 4
make
記憶領域を削除する
avrdude -p m32u4 -c avrisp -P comXXX -b 19200 -e -v
ヒューズビットを書き込む
avrdude -p m32u4 -c avrisp -P comXXX -b 19200 -U lfuse:w:0x5e:m -U hfuse:w:0x99:m -U efuse:w:0xf3:m -v
HWBE=0, BOOTRST=1にする
ブートローダーを書き込む
avrdude -p m32u4 -c avrisp -P comXXX -b 19200 -B 4 -U flash:w:"BootloaderMassStorage.hex" -v
QMKの書き込み
make keyboard:keymap:flashbin
FLASH.binができる
Pro Microを接続する
(初回以外は)キーボードのリセットボタンを押す
LUFA BOOTとして認識される
LUFA BOOTからFLASH.binを削除して, 新しいFLASH.binをドラッグ&ドロップ
LUFA BOOTを「安全に取り外し」
Ubuntuでは
(LUFA BOOTが/dev/sdbのとき)sudo dd if=FLASH.bin of=/dev/sdb seek=4
LUFA BOOTをアンマウントする
参考